#pragma once
#include<bits/stdc++.h>
using namespace std;
struct Edge;
struct Node {
	int value = 0;
	int in = 0;
	int out = 0;
	vector<Node*>nexts;
	vector<Edge*>edges;
	Node(int& val) :value(val) {}
};
struct Edge {
	Node* from;
	Node* to;
	Edge(Node* fro, Node* t) :from(fro), to(t) {}
};
struct Graph {
	map<int, Node*> nodes;
	set<Edge*>edges;
};
